HAProxy Server Monitoring

Overview

HAProxy is an open source solution for load balancing and reverse proxying both TCP and HTTP requests and, in keeping with the abbreviation in its name, it is high availability. HAProxy can continue to operate in the presence of failed backend servers, handling crossover reliably and seamlessly. It also has built-in health checks that will remove a backend if it fails several health checks in a row. With dynamic routing, you can transfer incoming traffic to a variety of backend servers, fully configurable with Access Control Lists (ACLs).

It is a fundamental element in the architecture of many high-profile websites such as GitHub, Instagram, Twitter, Stack Overflow, Reddit, Tumblr, Yelp, and many more.
Like other load balancers or proxies, HAProxy is very flexible and largely protocol-agnostic it can handle anything sent over TCP.

Graph Description

HAProxy Frontend Stats

Metric Metric Description
Requests/Sec Number of requests per second.
Sessions/Sec Number of session created per second. Session is created to serve all requests of same session by same backend.
Current Session Count Current number of sessions.
Request Errors/Sec Number of requests errors per second. Request errors could be as – client terminates before sending request, read error from client, client timeout, client terminated connection etc.
Denied Requests/Sec Number of requests denied per second due to security concerns.
Denied Responses/Sec Number of responses denied per second due to security concerns. For http this is because of a matched http-request rule, or “option checkcache”.
1xx Requests/Sec Number of requests per second with HTTP status code of 1xx series.
2xx Requests/Sec Number of requests per second with HTTP status code of 2xx series.
3xx Requests/Sec Number of requests per second with HTTP status code of 3xx series.
4xx Requests/Sec Number of requests per second with HTTP status code of 4xx series.
5xx Requests/Sec Number of requests per second with HTTP status code of 5xx series.
Others Requests/Sec Number of requests per second with status other than 1xx, 2xx, 3xx, 4xx and 5xx.
Received Throughput (Kbps) Received throughput in kilo bits per second.
Transmitted Throughput (Kbps) Transmitted throughput in kilo bits per second.
Server Status .Status of server. Status is 1 = DOWN, 2 = UP and Others = 3 (for example as open, maintenance etc).

HAProxy Backend Stats

Metric Metric Description
Requests/Sec Number of requests per second.
Sessions/Sec Number of sessions per second.
Current Session Count Current number of sessions.
Request Errors/Sec Number of requests errors per second. Request errors includes failed backend requests and general backend errors.
Denied Requests/Sec Number of requests denied per second. Request denied due to security concerns.
Response Errors/Sec Number of response errors per second. This includes errors caused by data transfers aborted by the servers as well as write errors on the client socket and failures due to ACLs.
Denied Responses/Sec Number of responses denied per second. Response denied due to security concerns.
1xx Requests/Sec Number of requests per second with HTTP status code of 1xx series.
2xx Requests/Sec Number of requests per second with HTTP status code of 2xx series.
3xx Requests/Sec Number of requests per second with HTTP status code of 3xx series.
4xx Requests/Sec Number of requests per second with HTTP status code of 4xx series.
5xx Requests/Sec Number of requests per second with HTTP status code of 5xx series.
Others Requests/Sec Number of requests per second with status other than 1xx, 2xx, 3xx, 4xx and 5xx.
Received Throughput (Kbps) Received throughput in kilo bits per second.
Transmitted Throughput (Kbps) Transmitted throughput in kilo bits per second.
Queued Requests Number of request awaiting assignment to a backend server.
Redispatched Requests/Sec Number of redispatch request per second. Requests that was unable to reach its original target, and was subsequently sent to a different server.
Connection Retry/Sec Number of times a connection to a server was retried per second.
Server Status Status of server. Status is 1 = DOWN, 2 = UP and Others = 3 (for example as open, maintenance etc).
Server Response Time (ms) Average backend response time in ms for the last 1,024 requests.